Playback synchronization in a group viewing a media title

ABSTRACT

A method and apparatus for synchronizing the playback of a media title to a group of client device platforms is disclosed. A synchronizer may make adjustments to the playback modes of one or more client device platforms within a group watching the same media title in order to ensure synchronized playback. When a client device platform is behind the group its playback mode may be changed to a fast playback mode. When a client device platform is ahead of the group its playback mode may be changed to a slow playback mode. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.

CLAIM OF PRIORITY

This application is a continuation of U.S. patent application Ser. No.14/476,548, filed Sep. 3, 2014, the entire contents of which areincorporated herein by reference. Application Ser. No. 14/476,548 is acontinuation of U.S. patent application Ser. No. 13/631,622, filed Sep.28, 2012, the entire contents of which are incorporated herein byreference.

FIELD OF THE DISCLOSURE

The present disclosure is related to the delivery of digital media overa network. Among other things, this application describes a method andapparatus for synchronizing media playback between a group of users whoare each receiving a media title over a network at approximately thesame time.

BACKGROUND OF THE INVENTION

Consuming media is often more entertaining when done with a group ofpeople. Traditionally, groups of friends or acquaintances meet to watchmovies or television shows at a private residence. In this environment,the individuals in the group are free to comment and discuss the contentof the movie. For example, the group may compare the movie they arewatching to another similar movie, or they may comment on the actingabilities of actors starring in the movie. This interaction may provideadditional enjoyment to the group of friends that they otherwise wouldmiss if they were watching the movie by themselves.

Recently, the use of text messaging, micro-blogging, video conferencing,and online chatting have allowed the group of friends watching abroadcast of an episode to communicate with each other without having tobe in the same location. In order for the comments from individual usersto be understood by the remainder of the group, it is desirable that theplayback to each user is synchronized. A synchronized playback wouldensure that at any given time, all of the users are viewing the sameframe of the episode. If this is not the case, then comments might betaken out of context, spoil surprises, or be considered irrelevant toother users. Until recently, synchronizing playback has not been aproblem, because most broadcast media was consumed live, and thereforehad uniform starting times. With the proliferation of recording servicessuch as TiVo, users are able to pause, fast-forward, rewind, record, andplayback broadcast media at their own desired times. Additionally, thestreaming of other media through services such as video-on-demand andover private networks have created a need to synchronize the playback ofmedia when users do not start viewing a media title at the same time, orone of the viewers in the group momentarily pauses the media title. Itis within this context that aspects of the present disclosure arise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a synchronizer and several clientdevice platforms communicating over a network according to an aspect ofthe present disclosure.

FIG. 2 is a flow diagram of a method for synchronizing the playbackprogress of a plurality of client device platforms according to anaspect of the present disclosure.

FIGS. 3A-3D are charts that depict the changes in the playback modesthat need to be implemented by the synchronizer in order to synchronizethe playback progress of the client device platforms according toseveral aspects of the present disclosure.

FIG. 4 is a block diagram describing the instructions for how asynchronizer may synchronize the viewing of a media title according toan aspect of the present disclosure.

DETAILED DESCRIPTION OF THE DRAWINGS

Although the following detailed description contains many specificdetails for the purposes of illustration, anyone of ordinary skill inthe art will appreciate that many variations and alterations to thefollowing details are within the scope of the present disclosure.Accordingly, the aspects of the present disclosure described below areset forth without any loss of generality to, and without imposinglimitations upon, the claims that follow this description.

A synchronizer may make adjustments to the playback modes of one or moreclient device platforms within a group watching the same media title inorder to ensure synchronized playback. Synchronized playback allowsusers who are viewing the media title through their client deviceplatforms to share their experiences and comments about the contentthrough media such as, but not limited to, text messaging, onlinechatting, video conferencing, and micro-blogging. With the aid of asynchronizer, events including, but not limited to, pausing a mediatitle, network latencies, and inconsistent start times may not disruptthe group viewing of a media title.

First, a synchronizer may synchronize a start time for a media titlethat will be viewed by a group of client device platforms. Thesynchronizer may aid in planning the scheduled starting time. Thescheduled starting time may be delivered to the synchronizer by a firstclient device platform from the group. At the scheduled starting time,the members of the group may begin viewing the chosen media title.According to an additional aspect of the present disclosure, the firstclient device platform may provide the synchronizer with a list ofclient device platforms that will be viewing the chosen media title.Once all of the members of the group have logged into the system, thesynchronizer may begin playing the chosen media title. According to yetanother additional aspect of the present disclosure, a synchronizer maybegin playback of a media title once a predetermined number of clientdevice platforms have logged into the system and requested playback ofthe media title.

After the playback has begun, the synchronizer may begin monitoring theplayback progress of each of the client device platforms within thegroup. If the client device platforms in the group are synchronized witheach other, then the synchronizer continues to monitor the playbackprogress without making any alterations to the playback mode of each ofthe client device platforms. If the synchronizer detects that theplayback in the group is not synchronized, then the synchronizer maychange the playback mode of one or more of the client device platforms.Additionally, aspects of the present disclosure describe predictivemonitoring that is capable of anticipating events that may cause theplayback in the group to become unsynchronized. The synchronizer maychange the playback mode of a client device platform from a standardplayback mode to a fast playback mode in order to help a client deviceplatform catch up to the rest of the group if it is behind.Alternatively, the synchronizer may change the playback mode of a clientdevice platform from a standard playback mode to a slow playback mode inorder to allow other client device platforms to catch up to the clientdevice platform that is ahead. According to yet additional aspects ofthe present disclosure, the synchronizer may change the playback modesof a first subset of client device platforms in the group from astandard playback mode to a fast playback mode and change the playbackmodes of a second subset of client device platforms in the group from astandard playback mode to a slow playback mode.

Aspects of the present disclosure describe the synchronized playback ofa media title 106. By way of example, and not by way of limitation, amedia title 106 may be a movie, an episode of a television show, a song,a sporting event, a news cast, home movies, a picture slideshow, a talkshow, or any other form of media that may be transmitted over a network.Media titles 106 may contain commercials. The commercials may havepredefined lengths (i.e., 30 seconds for each commercial), or they mayeach be of a variable length. Media titles 106 may also contain blankframes that are intermixed between frames of the media title 106. Themedia titles 106 may have been specially designed for synchronizedplayback, and therefore have predefined buffer zones that may be addedor removed to allow for a faster or slower playback rate. Alternatively,a media title 106 may not have anticipated the use of synchronizingtechnology when it was produced, and therefore the adjustments to theplayback rate of the media title 106 may be determined by thesynchronizer 102.

FIG. 1 is a schematic diagram illustrating components that may interactto implement synchronization of a playback progress of a media title 106being consumed by a plurality of devices. A plurality of client deviceplatforms 103, which are each part of a group 104, may access asynchronizer 102 over a network 160, which may be, e.g., a local areanetwork (LAN) or a wide area network (WAN). While only four clientdevice platforms are shown in FIG. 1, aspects of the present disclosureare not so limited.

Synchronizer 102 may include a central processor unit (CPU) 131. By wayof example, a CPU 131 may include one or more processor cores, which maybe configured according to, e.g., a dual-core, quad-core, multi-core,architecture. Alternatively, the CPU may be based on an architecturethat uses one or more main processor cores in conjunction with one ormore co-processor cores, such as a Cell processor architecture. Thesynchronizer 102 may also include a memory 132 (e.g., RAM, DRAM, ROM,and the like). The CPU 131 may execute a synchronization program 133,portions of which may be stored in the memory 132 along withsynchronization data 136. One or more media titles 106 may also bestored in the memory 132 or the mass storage 134. Alternatively, one ormore media titles 106 may be stored at a remote location accessible tothe synchronizer 102 over the network 160.

The synchronizer 102 may also include well-known support circuits 140,such as input/output (I/O) circuits 141, power supplies (P/S) 142, aclock (CLK) 143 and cache 144. The synchronizer 102 may optionallyinclude a mass storage device 134 such as a disk drive, CD-ROM drive,tape drive, or the like to store programs and/or data. The synchronizer102 may also optionally include a display unit 137 and a user interfaceunit 138 to facilitate interaction between the synchronizer 102 and auser who requires direct access to the synchronizer 102. The displayunit 137 may be in the form of a cathode ray tube (CRT) or flat panelscreen that displays text, numerals, or graphical symbols. The userinterface unit 138 may include a keyboard, mouse, joystick, touch pad,touch screen, or other device. The synchronizer 102 may include anetwork interface 139, configured to enable the use of Wi-Fi, anEthernet port, or other communication methods.

The network interface 139 may incorporate suitable hardware, software,firmware or some combination of two or more of these to facilitatecommunication via an electronic communications network 160. The networkinterface 139 may be configured to implement wired or wirelesscommunication over local area networks and wide area networks such asthe Internet. The synchronizer 102 may send and receive data and/orrequests for files via one or more data packets over the network 160.

The preceding components may exchange signals with each other via aninternal system bus 150. The synchronizer 102 may be a general-purposecomputer that becomes a special purpose computer when running code thatimplements embodiments of the present invention as described herein.

The synchronizer 102 may be a general-purpose computer that becomes aspecial purpose computer when running code that implementssynchronization methods according to certain aspects of the presentdisclosure as described herein. By way of example, and not by way oflimitation, the synchronizer 102 may be an electronic gaming device,such as a game console or portable gaming device, or a media playbackdevice, such as a DVD player or a Blu-ray player. Furthermore, thesynchronizer may be a suitably configured general-purpose electronicdevice, such as a smartphone, personal computer, laptop, or tabletcomputer that is configured to implement the synchronization of mediaplayback between a plurality of client device platforms throughappropriate programming. Additionally, the synchronizer 102 may be oneof a plurality of synchronizers implemented on a cloud-based network.

The client device platforms 103 may be configured substantially the sameas the synchronizer 102. In particular, the client device platforms 103may include a CPU 131′, a memory 132′, and a network interface 139′.Other components that the client device platforms 103 may have in commonwith the synchronizer 102 are omitted for the sake of clarity. However,components of the synchronizer 102 described above may be regarded asbeing included with the client device platforms 103 as if set forthexplicitly herein. The client device platform 103 may be ageneral-purpose computer that becomes a special purpose computer whenrunning code that implements media title playback methods according tocertain aspects of the present disclosure as described herein. By way ofexample, and not by way of limitation, the client device platforms 103may be an electronic gaming device, such as a game console or portablegaming device, or a media playback device, such as a DVD player or aBlu-ray player. Furthermore, the client device platforms may be asuitably configured general-purpose electronic device, such as asmartphone, personal computer, laptop, or tablet computer, that isconfigured to implement the synchronization of media playback between aplurality of client device platforms through appropriate programming.

The client device platform 103 may have access to one or more mediatitles 106 that may be stored by the synchronizer 102 or accessible bythe synchronizer 102 over the network 160. The media titles 106 may alsobe stored in the memory 132′ or in the mass storage device 134′ of theclient device platforms 103. Additionally, one or more media titles 106may be stored at a remote location accessible to the client deviceplatform 103 over the network 160.

As shown in FIG. 2, a synchronizer 102 may be configured to implement amethod 201 for synchronizing the playback progress of a plurality ofclient device platforms 103, in a group 104. Various aspects of thismethod may be implemented by execution of computer executableinstructions running on the synchronizer 102. Certain other aspects maybe implemented by execution of computer executable instructions runningon one or more of the client device platforms 103.

Referring to the method 201 for synchronizing the playback progress of aplurality of client device platforms 103, the method may begin byinitiating the playback of a selected media title 106, as indicated at202. The initiation of the playback of the media title 106 may aid inmaintaining the synchronization of the playback progress between theplurality of client device platforms. By way of example, and not by wayof limitation, the media title 106 may be initiated at a predeterminedscheduled start time. A group 104 of client device platforms 103 maydecide that they would desire to watch a media title 106 together attheir own remote locations at a specified time. One of the client deviceplatforms 103 that is part of the group 104 may inform the synchronizer102 of the desired start time. For example, the starting time may bescheduled for 8:00 P.M. on an upcoming Friday night. Around 8:00 P.M. onthe scheduled evening, the client device platforms 103 may eachestablish a connection with the synchronizer 102 over the network 160.By way of example, and not by way of limitation, the connection may beestablished after providing log in credentials, or paying a viewer fee.The synchronizer 102 may then begin delivering the chosen media title toclient device platforms 103 who have established a connection with thesynchronizer 102 at 8:00 P.M. Late arrivers may still establish aconnection with the synchronizer 102. These late arrivers will be ableto view the media title 106 starting from the beginning even though theremainder of the group 104 has already begun viewing the title.

Further by way of example, according to aspects of the presentdisclosure, a media title 106 may be initiated by the synchronizer onceall client device platforms 103 in a group 104 have established aconnection with the synchronizer 102. By way of example, and not by wayof limitation, a group list may be delivered to the synchronizer 102 bya member of the group 104 in addition to an approximate starting timefor the playback to begin. Around the scheduled playback time, themembers of the group 104 may establish a connection with thesynchronizer. Once every member of the group 104 is connected, thesynchronizer 102 may begin the playback of the chosen media title 106.Additionally, if the group 104 is still waiting for one or more membersto establish a connection after a predetermined period of time after thescheduled starting time, then the playback may be initiated without themissing members of the group 104 needing to be present.

According to yet another aspect of the present disclosure, the playbackof a media title 106 may be initiated once a predetermined number ofclient device platforms 103 have established a connection to thesynchronizer 102 and requested the playback of certain media title 106.By way of example, an episode of a sitcom may be initiated once tenclient device platforms 103 have established a connection with thesynchronizer 102 and have requested the playback of that particularepisode. This initiation aspect allows client device platforms 103 thatdo not have a predefined group 104 to still enjoy the shared experienceof communal viewing. Additionally, providing a single starting time forthe group 104 eases the burden of the synchronizer in adjusting theplayback progress of each client device platform 103.

Once the media title 106 has been initiated, method 201 then continueson by monitoring the playback progress of each client device platform103 in a group 104, as indicated at 203. Monitoring the playbackprogress allows the synchronizer to determine if any of the playbackmodes of the client device platforms 103 require adjustment. Monitoringthe playback progress of each client device platform 103 may alsocomprise predictive monitoring. By way of example, and not by way oflimitation, predictive monitoring may comprise analyzing the datatransmission rates of each client device platform 103, and the actionsof a user viewing a client device platform 103 in order to anticipateevents that may require adjustments to the playback mode for theirclient device platform.

According to an aspect of the present disclosure, monitoring theplayback progress of a client device platform may comprise determiningif a client device platform 103 is ahead of or behind other clientdevice platforms 103 in the group 104. By way of example, and not by wayof limitation, this may be determined by comparing the frames of themedia title 106 that are presently being displayed by each of the clientdevice platforms. Additionally, the playback progress of each clientdevice platform 103 may be determined by calculating the remainingrun-time of the media title 106 for each of the client device platforms.Further, analysis of the playback progress may measure the duration oftime that a client device platform 103 has paused and/or fast-forwardedthe viewing of the media title 106.

According to an additional aspect of the present disclosure, themonitoring of the playback progress may also comprise predictivemonitoring. Predictive monitoring is useful because it allows thesynchronizer 102 to spot potential events that may require a change inthe playback mode in the future. For example, if predictive monitoringdetects that a large pause in the playback of the media title willlikely occur in the future, the synchronizer 102 may begin adjusting theplayback mode before the event occurs. Therefore, when the event doeshappen, the adjustment will already have been made. By way of example,and not by way of limitation, if predictive monitoring detects that intwo minutes an event may cause the viewer of the client device platform103 to be away from the screen for three minutes, then the synchronizer102 may change the playback mode to account for the future delay. Thisallows for the adjustment to be made slowly over the course of severalminutes instead of having to make a rapid adjustment if the break isdetected only after it occurs.

According to aspects of the present disclosure, predictive monitoringmay detect the presence of an abnormally large latency in the connectionbetween a client device platform 103 and the synchronizer 102. By way ofexample, the latency for each client device platform may be measured byhaving the synchronizer 102 send a packet to each of the client deviceplatforms 103 in a group 104 and having each client device platform 103return the packet to the synchronizer 102. The round-trip time of thepacket may be used as a measure of latency. If a client device platform103 has a latency that is higher than the other client device platforms,then synchronizer 102 may be able to predict that the playback mode forthe slower client device platform 103 may need to be altered. Therefore,the synchronizer 102 may preemptively alter the playback mode to accountfor the latency.

According to yet an additional aspect of the present disclosure,predictive monitoring may detect events likely to cause a delay in theplayback of a media title by monitoring the communications between theclient device platforms 103 within the group 104. By way of example, andnot by way of limitation, phrases such as “I need a bathroom break”,“The baby is crying”, or “Someone is at the door”, may be used by thesynchronizer 102 for predictive monitoring. Phrases like those listedabove may indicate that the viewer of the client device platform 103 mayneed to stop viewing the media title 106 for a period of time to takecare of additional responsibilities. Therefore, it may be desirable forthe synchronizer 102 to begin altering the playback mode to account forthese potential delays in the playback of the media title 106. Themonitoring of communications may be accomplished through one or moredifferent options. By way of example, and not by way of limitation, textcommunications over the network, such as text messaging, online chatmessaging, or micro-blogging may be monitored for predetermined phrases.Additionally, voice recognition software may be implemented by thesynchronizer 102 to monitor vocal communications sent over the network160 for predetermined phrases.

According to yet another additional aspect of the present disclosure,predictive monitoring may detect events likely to cause a delay in theplayback of a media title 106 by visually monitoring the viewers of theclient device platforms 103 within the group 104. By way of example, avideo camera connected to a client device platform 103 and/or connectedto the network 160 may be used to see if the viewer of the client deviceplatform has stopped viewing the screen (e.g., the viewer has left theroom and cannot see the screen, or the viewer is not looking at thescreen). If a viewer is no longer watching the media title 160, thesynchronizer may predict that in the future, the viewer will need torewind the playback in order to see the portions of the media title 160that he or she missed. Rewinding the playback may cause the playbackprogress to be behind that of the other client device platforms 103 inthe group 104. Therefore, it may be desirable to change the playbackmode for that client device platform 103.

Returning to FIG. 2, once the playback progress and/or the predictedplayback progress have been determined by the synchronizer 102, method201 proceeds to determine whether each of the client device platforms103 are in synchronization and/or are predicted to remain insynchronization as indicated by decision block 204. If the answer isyes, then method 201 continues on to block 205 and no changes are madeto the playback mode of the client device platforms 103. If this branchof the method is taken, then the method continues on to block 203 againto continue monitoring the playback progress of each of the clientdevice platforms 103. Alternatively, if the answer is no, then method201 continues on to block 206 and the synchronizer 102 may adjust theplayback mode of one or more of the client device platforms 103. Oncethe playback mode has been adjusted in one or more of the client deviceplatforms, the method 201 returns back to block 203 to continuemonitoring the playback progress of each of the client device platforms.

According to aspects of the present disclosure, there may be at leastthree playback modes. By way of example, these playback modes mayinclude: (1) standard playback mode 312; (2) fast playback mode 314; and(3) slow playback mode 316. The standard playback mode 312 is theplayback mode that may be originally assigned to each of the clientdevice platforms 103 when they begin consuming the media title 106. Ifthere are no synchronizing issues that need to be addressed by thesynchronizer 102, then the media title 106 may not need to be altered inorder to adjust the playback speed. If a client device platform 103needs to catch up to the other client device platforms 103 in the group104, then its playback mode may be switched from the standard playbackmode 312 to the fast playback mode 314. Alternatively, if a clientdevice platform 103 is ahead of other client device platforms 103 andneeds to be slowed down, then the playback mode may be switched from thestandard playback mode 312 to the slow playback mode 316.

The charts depicted in FIGS. 3A-3D illustrate the playback progress of agroup 104 of client device platforms 103 in different situations. Ineach of the figures, the playback progress of a plurality of clientdevice platforms 103 (C.D.P. #1, C.D.P. #2, C.D.P. #3, C.D.P. #4 . . . )are plotted along the X-axis. Each of the vertical dashed linesrepresents a minute of playback progress (i.e., the number of minutes ofa media title 106 that have been displayed by the client device platform103). The shaded objects in each row represent the playback progress foreach of the client device platforms 103. By way of example, in FIG. 3Aclient device platform numbers 2-4 each have a playback progress of twominutes, and client device platform number 1 has a playback progress ofone minute. Additionally, the shaded objects designate the playback modethat has been chosen for each client device platforms 103 by thesynchronizer 102. Square objects, such as those for client deviceplatform numbers 2-4 in FIG. 3A, indicate a standard playback mode 312.Objects with an arrow to the right, such as the object for client deviceplatform number 1 in FIG. 3A, indicate a fast playback mode 314. Objectswith an arrow to the left, such as the object for client device platformnumber 1 in FIG. 3B, indicate a slow playback mode 316.

FIG. 3A depicts a situation where a fast playback mode 314 may be chosenby the synchronizer 102 for a client device platform 103. As shown inthe figure, client device platform number 1 has a playback progress thatis one minute behind that of the other client device platforms 103 inthe group 104. In order to bring the entire group 104 back intosynchronization, the synchronizer 102 may change the playback mode ofclient device platform number 1 from the standard playback mode 312 tothe fast playback mode 314. The fast playback mode 314 may comprisevarious techniques that in combination or by themselves may speed up theplayback of the media title 106. By way of example, and not by way oflimitation, these techniques may include eliminating portions of themedia title 106 and/or increasing the playback rate.

According to aspects of the present disclosure, eliminating portions ofthe media title 106 may comprise removing one or more commercials and/orreducing the length of one or more commercials. Removing one or morecommercials may provide a quick adjustment to the playback progress ofmedia title. Typically, commercials are standard time lengths (i.e., 15,30, 45, or 60 seconds). By removing one or more of the commercials,large time savings may be achieved. However, commercial time slots in amedia title are often used to monetization the content being deliveredto the client device platform 103. Therefore, it may not be desirable tocompletely eliminate the commercials. Certain aspects of the presentdisclosure may include the addition of banner advertisements overportions of media title if commercials are removed during the fastplayback mode 314 in order to provide alternative monetizationmechanisms. Alternatively, if the time savings needed to return thegroup 104 to a synchronized state is not as large as a standardcommercial time slot, then commercials of variable length may beinserted in place of the standard commercials. By way of example, if aclient device platform 103 is only 12 seconds behind the remainder ofthe group 104, then a commercial with a 12 second run time may besubstituted for a scheduled commercial that would have had a 15 secondrun time.

According to additional aspects of the present disclosure, eliminatingportions of the media title 106 may also comprise removing frames fromthe media title 106. By way of example, blank frames intermixed betweenframes with content may be removed. Further by way of example, certainscenes within a media title 106 that have been identified as transitionscenes may be eliminated. By way of example, and not by way oflimitation, transition scenes may be visually appealing, but notnecessary to the understanding of the content in the media title 106,such as panning a landscape, a slow dissolve into a new scene, a freezeframe, or an opening title sequence. These scenes may be identified bythe producer of the media title 106 during production, or they may beindicated as such by client device platforms 103 who have previouslyviewed the media title 106. Additionally, the media title 106 may havean abridged version 106′ that may have non-critical scenes alreadyremoved by the producer of the media title. The fast playback mode 314may comprise playing the abridged version 106′ of the media title 106until the client device platform 103 is back in synchronization with therest of the group 104.

According to yet additional aspects of the present disclosure, the fastplayback mode 314 may also comprise speeding up the rate of playback ofthe media title 106. The rate of playback may be slightly sped up forevery frame until the client device platform 103 has caught up to therest of the group 104. Alternatively, selected portions of the mediatitle 106 may have their playback rate increased. By way of example, andnot by way of limitation, transition scenes, commercials, or scenes withlittle or no dialog may have their playback rate increased.

It should be noted that a fast playback mode is not limited to a singleplayback rate. For example, if a first client device platform 103 isthree minutes behind the group 104, and a second client device platform103 is two minutes behind the group 104, then the fast playback mode 314for the first client device platform 103 may be faster than the fastplayback mode 314 for the second client device platform. The rate ofplayback in the fast playback mode 314 may be altered by using one ormore of the previously mentioned aspects of the present disclosure.

FIG. 3B depicts a graphical representation of a situation where a slowplayback mode 316 may be chosen by the synchronizer 102 for a clientdevice platform 103. As shown in the figure, client device platformnumber 1 has a playback progress that is a minute ahead of the otherclient device platforms 103 in the group 104. In order to bring theentire group 104 back into synchronization, the synchronizer 102 maychange the playback mode of client device platform number 1 from thestandard playback mode 312 to the slow playback mode 316. The slowplayback mode 316 may comprise various techniques that in combination orby themselves may slow down the rate of playback of the media title 106.By way of example, and not by way of limitation, these techniques mayinclude adding additional content to the media title 106 and/or reducingthe playback rate.

According to aspects of the present disclosure, adding additionalcontent to the media title 106 may comprise adding one or morecommercials and/or increasing the length of one or more commercials.Adding one or more commercials may provide a quick adjustment to theplayback progress of media title. Typically, commercials often havestandard time lengths (e.g., 15, 30, 45, or 60 seconds). By adding oneor more commercials, large adjustments to the playback progress may beachieved. Alternatively, if the adjustment to the playback progressneeded to return the group 104 to a synchronized state is not as largeas a standard commercial time slot, then commercials of variable lengthmay be inserted in place of the standard commercials. By way of example,if a client device platform 103 is only 8 seconds ahead of the remainderof the group 104, then a commercial with a 23 second run time may besubstituted for a scheduled commercial that would have had a 15 secondrun time.

According to additional aspects of the present disclosure, addingadditional content to the media title 106 may also comprise addingframes to the media title 106. By way of example, blank frames may beadded into the media title 106. Further by way of example, certainscenes within a media title 106 that have been identified as transitionscenes may be slowed down. Additionally, the media title 106 may have anextended cut version 106″ that may have non-critical scenes alreadyadded in by the producer of the media title 106. The slow playback mode316 may comprise playing the extended cut version 106″ of the mediatitle 106 until the client device platform 103 is back insynchronization with the rest of the group 104.

According to yet additional aspects of the present disclosure, the slowplayback mode 316 may also comprise slowing down the rate of playback ofthe media title 106. The rate of playback may be slightly slowed downfor every frame until the rest of the client device platforms 103 in thegroup 104 have caught up to the client device platform that is ahead ofeveryone. Alternatively, selected portions of the media title 106 mayhave their playback rate decreased. By way of example, and not by way oflimitation, transition scenes, commercials, or scenes with little or nodialog may have their playback rate decreased. Further, if a clientdevice platform 103 is sufficiently far ahead of the remainder of thegroup 104, then the slow playback mode 316 may include pausing theplayback of the media title until the remainder of the group 104 catchesup and becomes synchronized again.

It should be noted that a slow playback mode 316 is not limited to asingle playback rate. For example, if a first client device platform 103is three minutes ahead of the group 104, and a second client deviceplatform 103 is two minutes ahead of the group 104, then the slowplayback mode 316 for the first client device platform 103 may be slowerthan the slow playback mode 316 for the second client device platform.The rate of playback in the slow playback mode 316 may be altered byusing one or more of the previously mentioned aspects of the presentdisclosure.

FIG. 3C graphically depicts a situation in which a synchronizer 102utilizes both a slow playback mode 114 and a fast playback mode 116 fordifferent client device platforms 103 within the same group 104. Asshown in the figure, client device platform numbers 2 and 3 have aplayback progress located at the three minute mark. Additionally, clientdevice platform number 1 has a playback progress located a minute aheadat the four minute mark, and client device platform number 4 has aplayback progress located a minute behind at the two minute mark.Instead of having three of the client device platforms having theirplayback mode changed to catch up to client device platform number 1, orslowed down to allow client device platform number 4 to catch up,aspects of the present disclosure allow for two of the client deviceplatforms to have their playback modes changed. According to thisexample, client device platform number 4 may have its play back modechanged from the standard playback mode 312 to the fast playback mode314, and client device platform number 1 may have its playback modechanged from the standard mode 312 to the slow playback mode 316.

The chart shown in FIG. 3D graphically depicts a situation in which asynchronizer 102 utilizes both a slow playback mode and a fast playbackmode for a plurality of client device platforms 103 within the samegroup 104. According to aspects of the present disclosure, thesynchronizer 102 may calculate a mean playback progress of all of theclient device platforms 103 in the group 104. Once the mean playbackprogress point is determined, the synchronizer 102 may adjust theplayback modes of each of the client device platforms 103 in order tosynchronize them with respect to the mean playback progress point. Asshown in FIG. 3D, client device platform number 1 has a playbackprogress locate at the five minute mark, client device platform 2 has aplayback progress located at the four minute mark, client deviceplatform number 3 has a playback progress located at the two minutemark, and client device platform number 4 has a playback progresslocated at the one minute mark. Therefore, the mean playback progress ofthe group 104 is at the three minute mark (see equation 1).

$\begin{matrix}{\frac{\left( {1 + 2 + 4 + 5} \right)}{\left( {1 + 1 + 1 + 1} \right)} = 3} & (1)\end{matrix}$

At regular intervals, the synchronizer 102 may determine a difference Abetween each client device platform's current playback progress pointand the current mean playback progress of the group. A negativedifference means that the device is behind the mean playback progressand a positive difference would mean that the device is ahead of themean playback progress. In the foregoing example, the Δ values forclient device platforms 1, 2, 3, and 4 are Δ₁=−2, Δ₂=−1, Δ₃=+1, andΔ₄=+2, respectively. The synchronizer 102 may adjust the playbackprogress of each client device platform in a way that minimizes its Δvalue so that the client device platforms converge on the mean playbackprogress for the group as time progresses.

In order to adjust the playback rates so client device platformsconverge on the mean playback progress, client device platforms 3 and 4have their playback modes changed to the fast playback mode, and clientdevice platforms numbers 1 and 2 have their playback modes changed tothe slow playback mode. According to aspects of the present disclosure,the increase in the playback rate for client device platforms 3 and 4may be the same. According to this example, client device platformnumber 3 will reach the mean playback point before client deviceplatform number 4. Once client device platform number 3 is at the meanplayback point, the synchronizer 102 may revert client device platformnumber 3's playback mode back to the standard playback mode 312.Similarly, the decrease in the playback rate for client device platformsnumbers land 2 may be the same. Accordingly, client device platformnumber 2 will reach the mean playback point before client deviceplatform number 1. Once client device platform number 2 is at the meanplayback point (i.e., Δ₂=0), the synchronizer 102 may revert clientdevice platform number 2's playback mode back to the standard playbackmode 312.

Alternatively, the increase in playback rate between client deviceplatform numbers 3 and 4 may be variable. As such, the increase in theplayback rate client device platform number 4 may be twice that of theincrease in the playback rate of client device platform number 3. Underthis example, both client device platform numbers 3 and 4 will reach themean playback point at the same time. Similarly, the decrease in theplayback rate for client device platform number 1 may be twice that ofthe decrease in the playback rate of client device platform number 2. Assuch, both client device platform numbers 1 and 2 will reach the meanplayback point at the same time.

Further still, the mean playback point may be preferentially weighted toeither the faster client device platforms or the slower client deviceplatforms. By way of example, and not by way of limitation, weightingthe mean playback point towards the slower client device platforms 103may be beneficial if the content provider of the media title 106 wantsto ensure that as many of the commercials are seen in their entirety aspossible, or that the media title 106 is seen with minimal adjustments.For example, a weighting factor below 1.5 may added to the client deviceplatforms that are behind the mean playback point of the group 104.Using this adjustment, the weighted mean playback point may be 2.7minutes (see equation 2).

$\begin{matrix}{\frac{\left( {\left( {1 \times 1.5} \right) + \left( {2 \times 1.5} \right) + 4 + 5} \right)}{\left( {\left( {1 \times 1.5} \right) + \left( {1 \times 1.5} \right) + 1 + 1} \right)} = {2.7}} & (2)\end{matrix}$

Similarly, by way of example, and not by way of limitation, weightingthe mean playback point towards the faster client device platforms 103may be beneficial if the group 104 desires to complete the viewing ofthe media title 106 quickly, or if there is a heavy load on the networkstreaming the media title 106 and the system desires to free upbandwidth as quickly as possible. For example, a weighting factor below1.5 may be added to the client device platforms that are ahead of themean playback point of the group 104. Using this adjustment, theweighted mean playback point may be 3.3 minutes (see equation 3).

$\begin{matrix}{\frac{\left( {1 + 2 + \left( {4 \times 1.5} \right) + \left( {5 \times 1.5} \right)} \right)}{\left( {1 + 1 + \left( {1 \times 1.5} \right) + \left( {1 \times 1.5} \right)} \right)} = {3.3}} & (3)\end{matrix}$

As shown in FIG. 4, a set of synchronization instructions 401 may beimplemented, e.g., by the synchronizer 102. The synchronizationinstructions 401 may be embodied in a non-transitory computer-readablemedium 420 such as the memory 132 or the mass storage device 134 of thesynchronizer 102. The synchronizer instructions 401 may be configured toimplement the synchronization method 201 when executed by the CPU 131 ofthe synchronizer 102. The synchronizer instructions 401 may includeinstructions for initiating the playback of a media title 106 at 402.Thereafter, the instructions may include instructions form monitoringthe playback progress of each client device platform 103 in the group104 consuming the media title 106 at 403. When the synchronizer 102detects that the playback progress of each of the client deviceplatforms 103 is not synchronized, then the instructions may includechanging one or more of the client device platforms 103 playback mode'sto an adjusted playback mode at 404.

While the above is a complete description of the preferred embodiment ofthe present invention, it is possible to use various alternatives,modifications and equivalents. Therefore, the scope of the presentinvention should be determined not with reference to the abovedescription but should, instead, be determined with reference to theappended claims, along with their full scope of equivalents. Any featuredescribed herein, whether preferred or not, may be combined with anyother feature described herein, whether preferred or not. In the claimsthat follow, the indefinite article “A”, or “An” refers to a quantity ofone or more of the item following the article, except where expresslystated otherwise. The appended claims are not to be interpreted asincluding means-plus-function limitations, unless such a limitation isexplicitly recited in a given claim using the phrase “means for.”

What is claimed is:
 1. A media player configured to present mediacontent synchronously with a group of one or more other users viewingthe media content with one or more corresponding other media players,comprising: a processor; a memory coupled to the processor; one or moreinstructions embodied in the memory for execution by the processor, theinstructions being configured to, when executed, cause the device to:continuously detect a place in time of the media player's presentationof the media content compared to the one or more corresponding othermedia players by communicating with the one or more corresponding mediaplayers over a network and gain back synchronization with the group byeliminating portions of the media content.
 2. The media player of claim1, wherein eliminating portions of the media content includes removingone or more commercials from the media content and leaving othernon-commercial content in the media content.
 3. The media player ofclaim 2, further comprising replacing the one or more commercials thatwere removed with an alternative monetization mechanism.
 4. The mediaplayer of claim 3, wherein the alternative monetization mechanismincludes a banner advertisement displayed over portions of the othernon-commercial content in the media content.
 5. The media player ofclaim 1 wherein eliminating portions of the media content includesreplacing a standard length commercial with a variable lengthcommercial.
 6. The media player of claim 5, wherein a length of thevariable length commercial is different than a length of the standardlength commercial.
 7. A computer readable medium having non-transitoryinstructions embodied thereon, the instructions being configured tocause a computer to carry out a method for presenting media contentsynchronously with a group of one or more other users viewing the mediacontent with one or more corresponding other media players the methodcomprising: continuously detecting a place in time of the presentationof the media content compared to the one or more corresponding othermedia players by communicating with the one or more corresponding mediaplayers over a network and gain back synchronization with the group byeliminating portions of the media content.
 8. The computer readablemedium of claim 7, wherein eliminating portions of the media contentincludes removing one or more commercials from the media content andleaving other non-commercial content in the media content.
 9. Thecomputer readable medium of claim 9 wherein the alternative monetizationmechanism includes a banner advertisement displayed over portions of theother non-commercial content in the media content.
 10. The computerreadable medium of claim 7, wherein eliminating portions of the mediacontent includes replacing a standard length commercial with a variablelength commercial.
 11. The computer readable medium of claim 7, whereineliminating portions of the media content includes replacing a standardlength commercial with a variable length commercial.
 12. The computerreadable medium of claim 11, wherein a length of the variable lengthcommercial is different than a length of the standard length commercial.13. A method for presenting media content synchronously with a group ofone or more other users viewing the media content with one or morecorresponding other media players, comprising; continuously detecting aplace in time of the presentation of the media content compared to theone or more corresponding other media players by communicating with theone or more corresponding media players over a network and gain backsynchronization with the group by eliminating portions of the mediacontent.
 14. The method of claim 13, wherein eliminating portions of themedia content includes removing one or more commercials from the mediacontent and leaving other non-commercial content in the media content.15. The method of claim 14, further comprising replacing the one or morecommercials that were removed with an alternative monetizationmechanism.
 16. The method of claim 15, wherein the alternativemonetization mechanism includes a banner advertisement displayed overportions of the non-commercial content in the media content.
 17. Themethod of claim 13, wherein eliminating portions of the media contentincludes replacing a standard length commercial with a variable lengthcommercial.
 18. The method of claim 17, wherein a length of the variablelength commercial is different than a length of the standard lengthcommercial.